package demo

import (
	"ailearning-demo/dao"
	"fmt"
	"github.com/gin-gonic/gin"
	"log"
	"net/http"
)

// 根据model类创建对应的schema
func schema(ctx *gin.Context) {
	err := dao.DB.AutoMigrate(&Demo{})
	if err != nil {
		ctx.JSON(http.StatusInternalServerError, err.Error())
	}

	ctx.JSON(http.StatusOK, "create schema OK")
}

// 保存demo信息
func save(ctx *gin.Context) {
	var demo Demo
	// 参数绑定
	err := ctx.ShouldBind(&demo)
	if err != nil {
		log.Fatal("bind param error:", err.Error())
		return
	}
	dao.DB.Create(&demo)

	ctx.JSON(http.StatusOK, fmt.Sprintf("demo save successfully, Id = %d", demo.Id))
}

// 根据ID获取demo信息
func getById(ctx *gin.Context) {
	id := ctx.Param("id")
	var demo Demo
	// 根据ID查询用户信息
	dao.DB.Where("id = ?", id).First(&demo)
	ctx.JSON(http.StatusOK, &demo)
}

// 根据ID更新demo信息
func updateByID(ctx *gin.Context) {
	var demo Demo
	// 参数绑定
	err := ctx.ShouldBind(&demo)
	if err != nil {
		log.Fatal("bind param error:", err.Error())
		return
	}

	dao.DB.Model(&demo).Where("id = ?", demo.Id).Updates(&demo)

	ctx.JSON(http.StatusOK, &demo)
}
